//合并集合
#include <iostream>
using namespace std;
const int N = 100010;
int n, m;
int p[N];
int find(int x)  //找x点的父结点，即所在集合
{
    if (p[x] != x)
        p[x] = find(p[x]); // 递归找父结点
    return p[x];
}
int main()
{
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= m; i++)
        p[i] = i;
    while (m--)
    {
        char op[2];
        int a, b;
        scanf("%s%d%d", op, &a, &b);

        if (op[0] == 'M')
            p[find(a)] = find(b);  //a的集合归入b的集合
        else
        {
            //a和b的父结点为同一个，即属于同一个集合
            if (find(a) == find(b))  
                puts("Yes");
            else
                puts("No");
        }
    }
    return 0;
}